规则集
什么是规则集
HTTP规则引擎允许用户自定义CDN边缘服务器行为,例如CDN将如何管理缓存和重定向。这为不同平台的网站与CDN集成创造了很大的灵活性和适应性,无需太多麻烦。
如何设置规则集
你可以进入CDN Resources -> Rules 去配置

规则集由条件和操作组成。条件由一个主语和一个谓语组成,主语决定要选择的值,谓语指定要与主语进行比较的对象。条件由连接词“AND”或“or”连接。当所有条件都满足时,CDN边缘服务器将执行与规则关联的操作。CDN边缘服务器从上到下处理这些规则。它在第一次匹配时结束处理。

主题
| 主题 | 详细信息 |
|---|---|
| URL | 选择请求的URL部分。完整的请求URL,包含协议、域名、请求路径、参数等。 例子 http://cdn.example.com/image.jpg?name=cdn |
| IP | 选择客户端的IP地址。如果客户端使用代理服务器,则会选择向边缘服务器发出请求的代理服务器的IP。 例子 192.0.2.43 |
| Cookie | 选择客户端发送的特定cookie的值。 例子 选择的Cookie: logged_in客户请求的标头: Cookie: session_id=abcdef;logged_in=1; cart_id=defabc所选值: 1 |
| 国家(Country) | 选择客户的国家。如果客户的国家/地区无法从其IP中导出,则选择值“ ”。 例子 客户的IP: 193.113.9.162所选值: 英国 |
| 参数(Param) | 选择特定查询字符串参数的值。如果有多个相同的键,则选择最后一个值。 例子 所选参数: page客户请求: http://cdn.example.com/index.php?page=about&id=53所选值: about |
| 扩展(Extension) | 选择请求的文件扩展名。如果请求文件名不包含点,则选择值“ ”。 例子 客户请求: http://cdn.example.com/image.jpg所选值: jpg |
| 标头(Header) | 选择特定客户端请求标头的值。如果请求标头不存在,则选择值“ ”。 例子 所选标头: User-Agent客户端发送标题: User-Agent: Mozilla/5.0 (Windows NT 6.3) Firefox/30.0所选值: Mozilla/5.0 (Windows NT 6.3) Firefox/30.0 |
| 方案(Scheme) | 选择请求的方案部分。它可以是http或https。 例子 客户请求: http://cdn.example.com/image.jpg所选值: http例子 客户请求 https://secure.example.com/image.jpg所选值: https |
谓语
| 谓语 | 详细信息 |
|---|---|
| 等于(Equals) | 将主题与精确值进行比较。 例子 URL /index.phpEquals /index.phpResult TRUEURL /ExampleFile.txtEquals /examplefile.txtResult TRUEURL /image.jpgEquals /index.phpResult FALSE |
| 以...开头(Starts with) | 比较主题是否以...值开头。 例子 IP 192.0.2.54Starts With 192.0.2.Result TRUEURL /images/files.jpgStarts With /images/Result TRUEIP 192.5.54.3Starts With 192.0.2.Result FALSE |
| 以...结尾 | 比较主题是否以...结尾。 例子 URL /images/files.jpgEnds With .jpgResult TRUEURL /videos/video.mp4Ends With .jpgResult FALSE |
| 包含在列表中(In List) | 将主题与值列表进行比较。每个值由一个空格分隔。 例子 Country GBIn List GB ES FR DEResult TRUECountry USIn List GB ES FR DEResult FALSE |
| 匹配通配符(Matches wildcard) | 比较主题是否与通配符值匹配。通配符*匹配任何0个或更多字符。可以指定多个*。例子 Url /images/photos/photo.jpgMatches Wildcard /images/ * .jpgResult TRUEUrl /images/videos/video.mp4Matches Wildcard /images/ * .jpgResult FALSEUrl /archives/2014/news/index.htmlMatches Wildcard / * /2014/news/ *Result TRUE |
| 不等于(Does not equal) | 与等于(Equals)的意义相反 |
| 不包含在列表中(Is not in list) | 与包含在列表中(In list)的意义相反 |
| 与通配符不匹配(Does not match wildcard) | 与匹配通配符(Matches wildcard)意义相反 |
动作
| 动作 | Details | |
|---|---|---|
| 缓存规则 | ||
| 强制边缘服务器从不缓存(Force Edge To Never Cache) | 强制CDN边缘服务器从不缓存请求。但是,如果请求已经缓存(例如,如果在设置此规则之前缓存了请求),则不会强制将其从缓存中移出。 | |
| 强制边缘缓存(Force Edge To Cache) | 强制CDN边缘服务器在指定的持续时间内缓存请求。这将覆盖来自源站的任何Cache-Control或Expires标头,即使它们指定了private或no-Cache。该值必须为1秒或更长。 |
|
| 强制客户端缓存(Force Client To Cache) | 强制客户端将请求缓存指定的持续时间(TTL)。这是通过删除所有Cache-Control和Expires响应标头来实现的,而是发送Cache-Control: max-age=...。该值必须为1秒或更长时间。 |
|
| 重定向规则 | ||
| 禁止客户(Forbid Client) | 向客户端返回简单的403禁止响应。 | |
| 将客户端从HTTP重定向到HTTPs(Redirect Client from HTTP to HTTPs) | 返回301将响应从http地址重定向到https地址,而不是从缓存或上游加载。注意,多CDN加速域名的情况,需要选择执行重定向的域名。 | |
| 重定向客户端(Redirect Client) | 将302重定向响应返回到客户端和指定的URL。必须完整指定URL,以http://或https://。 |
|
| 修改标头 | ||
| 设置请求标题(Set Request Header) | 将请求标头覆盖到源站。必须提供标头名称和标头值。 | |
| 设置响应标头(Set Response Header) | 覆盖客户端的响应标头。必须提供标头名称和标头值。 | |
| 设置请求端头中的客户端IP(Set Client IP In Request Header) | 将请求头中的客户端IP地址设置为源。必须提供标头名称。 | |
| 源规则 | ||
| 准备源目录(Prepend Origin Directory) | 当边缘服务器从源服务器请求时,将目录前置到URL。 例子 前置原始目录: images客户端对边缘的请求: http://cdn.example.com/photo.jpg对源站的边缘请求: http://cdn.example.com/images/photo.jpg前置原始目录: /some/sub%20directory/客户端对边缘的请求: http://cdn.example.com/some/file.txt对源站的边缘请求: http://cdn.example.com/some/sub%20directory/some/file.txt
|
|
| 回源主机名(Origin Server Hostname) | 回源主机名的选择影响到请求源站时接收到的域名。默认是CDN加速域名。 跟随CDN域名:"跟随CDN域名"是指源站接收到的域名和当前CDN加速域名保持一致。这种类型基本用于源站支持多域名托管的情况,精准匹配请求,避免404/400错误。 跟随源站:跟随源站"是指源站接收到的域名仍然是填写的源站地址中的信息,不随代理服务域名改变而改变。多用于源站仅服务单一域名,兼容性好,无需修改源站配置。 自定义:自定义Host内容中支持请求变量。 |
|
| 自动添加标头 | 想源站自动添加这些标头,以便于源站获取客户端信息。 |